#pragma once
#include <map>
#include <list>
#include "Collision.h"

namespace model
{

class Entity;
class CollisionHelper
{
public:
	CollisionHelper(std::map<int, Entity*> &activeEntities, std::map<int, Entity*> &passiveEntities);
	CollisionHelper();
	virtual ~CollisionHelper(void);

	virtual void addActiveEntity (Entity* e);
	virtual void addPassiveEntity(Entity* e);

	virtual void removeEntity    (Entity* e);

	virtual void checkCollisions(double currentTime, std::list<Collision> &collisions, std::map<std::pair<int, int>, bool> &trackedCollisions)=0;

protected:

	std::map<int, Entity*> activeEntities, passiveEntities;
	double previousTime;
};
};
